package com.inepex.inegraphics.shared.gobjects;

import com.inepex.inegraphics.shared.Context;

public class EllipticArc extends GraphicalObject {

	protected double horizontalRadius;
	protected double verticalRadius;
	protected double startAngle;
	protected double arcAngle;
	
	protected ArcShape arcShape;
	
	/**
	 * The basepoint is the geometric middle of the ellipse
	 * 
	 * @param basePointX 
	 * @param basePointY
	 * @param horizontalRadius
	 * @param verticalRadius
	 * @param startAngle
	 * @param arcAngle
	 */
	public EllipticArc(double basePointX, double basePointY,
			double horizontalRadius, double verticalRadius, double startAngle,
			double arcAngle) {
		super(basePointX, basePointY);
		this.horizontalRadius = horizontalRadius;
		this.verticalRadius = verticalRadius;
		this.startAngle = startAngle;
		this.arcAngle = arcAngle;
		this.arcShape = ArcShape.Pie;
	}

	/**
	 * 
	 * The basepoint is the geometric middle of the ellipse
	 * 
	 * @param basePointX
	 * @param basePointY
	 * @param horizontalRadius
	 * @param verticalRadius
	 * @param startAngle
	 * @param arcAngle
	 * @param stroke
	 * @param fill
	 * @param context
	 * @param zIndex
	 * @param arcShape TODO
	 */
	public EllipticArc(double basePointX, double basePointY,
			double horizontalRadius, double verticalRadius, double startAngle,
			double arcAngle, boolean stroke,
			boolean fill, Context context, int zIndex, ArcShape arcShape) {
		super(basePointX, basePointY, zIndex, context, stroke, fill);
		this.horizontalRadius = horizontalRadius;
		this.verticalRadius = verticalRadius;
		this.startAngle = startAngle;
		this.arcAngle = arcAngle;
		this.arcShape = arcShape;
	}

	public double getHorizontalRadius() {
		return horizontalRadius;
	}

	public void setHorizontalRadius(double horizontalRadius) {
		this.horizontalRadius = horizontalRadius;
	}

	public double getVerticalRadius() {
		return verticalRadius;
	}

	public void setVerticalRadius(double verticalRadius) {
		this.verticalRadius = verticalRadius;
	}

	public double getStartAngle() {
		return startAngle;
	}

	public void setStartAngle(double startAngle) {
		this.startAngle = startAngle;
	}

	public double getArcAngle() {
		return arcAngle;
	}

	public void setArcAngle(double arcAngle) {
		this.arcAngle = arcAngle;
	}

	public ArcShape getArcShape() {
		return arcShape;
	}

	public void setArcShape(ArcShape arcShape) {
		this.arcShape = arcShape;
	}
	
	
}
